首页 > 证书知识 > 如何使用Microsoft Authenticode 或Microsoft Office 和VBA 签署Microsoft Vista 64 位元核心模式软体?

如何使用Microsoft Authenticode 或Microsoft Office 和VBA 签署Microsoft Vista 64 位元核心模式软体?

作者:刘文君 时间:2016-07-20


1.Microsoft Windows SDK(必须安装以取得以下所需的工具)

pvk2pfx.exe
inf2cat.exe
signtool.exe      
2. 微软交叉凭证 请在这篇文章底部的附加文件下载此凭证,文件名是 MSCV-VSClass3.cer   

3. PVK 汇入(赛门铁克 不支援此工具)
如果您的证书不在个人证书栏,使用PVK工具导入您的证书到个人证书栏。
从使用命令行界面signtool.exe 签署代码。

如果想成功签署驱动程序文件,请确保遵循以下步骤:

1. 确保Microsoft验证代码签名证书被安装在用户的个人证书存储。 (这可能需要pvk2pfx.exe和/或

pvkimport.exe)
 
2. 使用inf2cat.exe验证驱动程序包INF文件,并创建一个有效的目录文件。如果成功,一个目录文件

(*.cat)将被创建。

3. 使用signtool.exe签署目录(*.cat)和所有的驱动程序(的* .sys),如下列指令:

注意:将 CatFileName.cat 置换为你需要签署的文件名。 这将需要针对所有的驱动和目录文件的运


 
SHA-1包含时间戳:
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /s MY /n "Symantec Corp"

/thttp://timestamp.veriSign.com/scripts/timstamp.dll C:\CatFileName.cat
SHA-1不包含时间戳:
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /s MY /n "Symantec Corp" C:

\CatFileName.cat

SHA-256包含RFC3161时间戳:
signtool sign /v /ac C:\Authenticode\MSCV-VSClass3.cer /s MY /n "Symantec Corp" /fd sha256

/trhttp://sha256timestamp.ws.symantec.com/sha256/ C:\CatFileName.cat

SHA-256不包含RFC3161时间戳:
signtool sign /v /ac C:\Authenticode\MSCV-VSClass3.cer /s MY /n "Symantec Corp" /fd sha256

C:\CatFileName.cat

4. 确认文件被正确交叉签署,请使用以下语法,并寻找“微软代码验证根(Microsoft Code

Verification Root)":
signtool verify /v /kp "C:\driver.sys" 
 
此范例使用数个SignTool 支援的参数:
Sign:设定工具签署名为CatFileName.cat 的目录档
/a: 自动选择最佳的签名证书。登录工具会找到所有满足规定条件,并选择一个有效时间最长的有效

证书。如果这个选项不存在,登录工具期望发现只有一个有效的签名证书。

/v:指定verbose 选项,用于成功执行或警告讯息


/s:指定名为SPCCertificateStore 的凭证存放区(如果凭证汇入「个人存放区」中,则

SPCCertificateStore 为My)

/n:是指凭证中出现在「ISSUED TO」栏位的公司名称。
/t:指定数位签章将加上URL 所指的时间戳记授权单位(TSA) 发行的时间戳记
/f: 指定一个文件中的签名证书。仅支持个人信息交换(PFX)文件格式。
/p: 如果该文件是受密码保护的PFX格式,使用/ p选项来指定密码。
/as: 追加此签名。如果目前没有主签名,这一签名会成为主签名
/fd: 指定文件摘要算法用于创建文件签名。默认值为SHA1
/tr: 指定RFC3161时间戳服务器的URL。如果该选项(或/t)不存在,则签名的文件不会被时间标记

。如果时间戳失败会生成一条警告。此选项不能与/t 选项并用。 
注意:加上SHA1时间戳记的赛门铁克网址为 http://timestamp.verisign.com/scripts/timstamp.dll

(必须有timstamp.dll档案名称才符合旧的MS-DOS命名惯例)

赛门铁克的SHA256 RFC3161 时间戳网址是 http://sha256timestamp.ws.symantec.com/sha256/ 

如需详细资讯,请参阅下列Microsoft 知识库文件:
Windows驱动程序工具包(WDK):http://www.microsoft.com/whdc/driver/64bitguide.mspx 
使用SignTool签署一份文件:http://msdn.microsoft.com/en-us/library/aa388170
交叉证书内核模式代码签名:http://msdn.microsoft.com/en-

us/library/windows/hardware/dn170454(v=vs.85).aspx
Microsoft 同时提供下列摘要版 签署程序:
问题- 使用signtool 和交叉凭证签署驱动程式时的问题
环境 - Vista 64 位元
解决方法- 按两下安装凭证,并允许根据凭证类型自动安装。如此您就不必担心凭证所在的凭证存放区

为何
使用SIGNTOOL 时,使用经过x64 检查的建置环境或Server 2008 SDK 建置环境
仅交叉签署 .SYS 档。 CAT 档不需要交叉签署。载入时,系统只会查看SYS 档进行验证,而不会查看

CAT 档(仅适用于64 位元系统)。
交叉签署时,请使用下列语法:注意:「Company Cert Name(公司凭证名称)」应该与您所属凭证的「

凭证ISSUED TO」栏位完全一致。
下列签署语法使用一个证书存储在密码保护.PFX的文件
SHA-1包含时间戳:
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /f C:\Authenticode\YourCert.pfx /p

Password /n "Symantec Corp" /t http://timestamp.verisign.com/scripts/timstamp.dll "C:

\driver.sys"
SHA-1不包含时间戳::
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /f C:\Authenticode\YourCert.pfx /p

Password /n "Symantec Corp" "C:\driver.sys"

SHA-256包含RFC3161时间戳:
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /f C:\Authenticode\YourCert.pfx /p

Password /n "Symantec Corp" /fd sha256

/tr http://sha256timestamp.ws.symantec.com/sha256/ "C:\driver.sys"
SHA-256不包含RFC3161时间戳:
signtool sign /v /ac "C:\Authenticode\MSCV-VSClass3.cer" /f C:\Authenticode\YourCert.pfx /p

Password /n "Symantec Corp" /fd sha256 "C:\driver.sys"
提示:
确认程式已正确交叉签署,请使用下列语法
signtool verify /v /kp driver.sys
验证驱动程序被特定的目录文件“签名”使用下面的命令:
signtool verify /v /kp  /c "C:\CatFileName.cat" "C:\driver.sys"
为了有效减少启动时间,签署所有驱动程序和目录文件。

MSCV-VSClass3[1].cer下载

https://symwisedownload.symantec.com/resources/sites/SYMWISE/content/live/SOLUTION/5000/SO5

820/zh_CN/MSCV-VSClass3%5B1%5D.cer?__gda__=1469141685_f4623dc529715f095ed6cc1539bd5433

中万网络旗下网站:中万网络快商建站诚信网站可信网站认证联盟安全联盟网信认证百度信誉V企业信用评级服务器证书环球邮局400电话中国企业品牌网

京ICP备09070896号-1 京公网安备11010802011463号 《中华人民共和国增值电信业务经营许可证》

可信网站诚信网站